package model.events;

import model.EMedium;
import model.rentals.Page;

/**
 * Classe AnnotationEvent - evento para anotar paginas do livro
 * @author DCO37
 * 	N.º 42484 Helder Ferreira
 *  N.º 45509 Luis Ferreira*
 */
public abstract class AnnotationEvent extends EMediumEvent{
	
	private Page pagina;
	
	/**
	 * Constructor de AnnotationEvent dado um emedium e uma pageNum
	 * @param emedium - emedia
	 * @param pageNum - numero de pagina
	 */
	public AnnotationEvent(EMedium emedium, int pageNum) {
		super(emedium, pageNum);
		pagina = new Page(pageNum);
	}

	@Override
	/**
	 * Devolve o numero de pagina
	 */
	public int getPageNum() {
		return super.getPageNum();	
	}

	/**
	 * Devolve o numero de anotacoes de uma pagina
	 * @return
	 */
	public int getAnnotationNum() {
		int numeroAnotacoes = 0;
		// for-each que percorre o numero de anotacoes de uma pagina
		for (String anotacao : pagina.getAnnotations() ) {
			numeroAnotacoes++;
		}
		return numeroAnotacoes;	
	}
	
	
	// mudei da class AnnotationAddedEcent para aqui no outro lado nao fazia sentido
	/**
	 * Devolve uma anotacao de um pagina
	 * @return anotacao do texto
	 */
	public String getAnnotationText() {
		return pagina.getAnnotationText(getPageNum());	
	}
		
	/**
	 * Verifica se pagina tem anotacoes
	 * @return true se pagina tiver anotacoes ou false caso contrario
	 */
	public boolean hasAnnotations() {
		return pagina.hasAnnotations();	
	}

}
